-
Notifications
You must be signed in to change notification settings - Fork 5.9k
ARM building support #1074
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ARM building support #1074
Conversation
This is the same PR but with some fixes for v2. Co-Authored-by: nwtnsqrd <[email protected]> Signed-off-by: Ayane Satomi <[email protected]>
this will replace my previous ARM PRs Signed-off-by: Ayane Satomi <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very cool. 🎉
Signed-off-by: Ayane Satomi <[email protected]>
Signed-off-by: Ayane Satomi <[email protected]>
Signed-off-by: Ayane Satomi <[email protected]>
Signed-off-by: Ayane Satomi <[email protected]>
Signed-off-by: Ayane Satomi <[email protected]>
Signed-off-by: Ayane Satomi <[email protected]>
Signed-off-by: Ayane Satomi <[email protected]>
Signed-off-by: Ayane Satomi <[email protected]>
I want to turn my Android phone to a server and code on my ipad. I check this PR every day👻 |
me too @SpinningK, my rpi4. you can 1) activate notification when a new release is uploaded, and 2) you can also activate notification for all new message on this particular thread. hope it helps |
Might need to trial out ARM builds first in my LKGR repo first before merging this so if anyone's interested I'll be releasing builds there first. |
Hi, I hope this will be merged soon! @sr229 you said we can download build in your LKGR repo in the meantime, but I can't find it. Do you have any link please? |
Right here chief. It'll take a while to run ARM builds though since we haven't built nbin to do package builds yet. |
Any progress? |
The Alpine Arm build failed because the environment is missing the |
On Android I can make it as far as Is there another way to get it to compile without watching all the files for changes (I assume that's what Unfortunately, there's no easy way to override the In any case, I'll try to build a Pi as well, if I get a chance. 😞 |
@deftdawg You might have better luck with the build instructions (https://github.com/cdr/code-server#build) instead of the development instructions. You won't need |
@code-asher, I gave those instructions a try... modifying package.json to point at @sr229 's nbin package, but unfortunately, it fails to find nbin and I'm too much of a node noob to understand why. These are my steps git clone https://github.com/cdr/code-server.git
cd code-server
git checkout sr229/travis-arm
sed -ie 's=@coder/nbin": "^1.2.2=@coder/nbin": "github:sr229/nbin#sr229/travis-arm=' package.json
yarn build "1.39.2" "deftdawg-android-1.39.2" And this is how yarn dies:
|
@deftdawg interesting, it just states that it is missing a dependancy, try installing that dependancy and try again? |
@Merith-TK yeah cool, like how? I tried this: I added: I tried adding Feel like this should be a very easy thing to solve, but I don't really know node very well and my google searches haven't turned up anything helpful... just stuff like |
There isn't much change in my ARM branch so don't point it there, I'll be working on a experimental distribution format for a bit for ARM since compiling it for the architecture requires a custom gcc toolchain. Not a pleasant experience but I'll get around it soon. |
@deftdawg yeah I'd recommend just building from
So basically you'll just run the compiled JavaScript files with node. You won't be able to package into a binary since nbin doesn't support that architecture yet. |
I think the build script swallows some error output. You could try running that command manually in the root VS Code directory and it might show you what's really going on: |
You can also run |
@code-asher's fix commit is 015a99e... I'll cherry pick it to @sr229 's arm branch and have another go at attempting to build this with |
@deftdawg this PR only changes the CI so there's no benefit in building against it locally. You could just build against master. |
@code-asher my bad, I'll have a go against master then. |
@code-asher I don’t really get more output with |
Nice, let me know if you can manage to build it!
… |
@Akarys42 I'm getting "SIGKILL" as well... best I can figure it is the OS killing yarn because max-old-space-size is set to 32GB on my 4GB RPi4 (exit code 137 is out of memory). I'm going to try with setting --max-old-space-size to 3096 (3GB) in package.json and see if that helps. |
Reducing max-old-space-size did not work. I did however have success building it in a aarch64 alpine Docker container running under qemu-aarch64-static... The x86-64 host machine had 64GB of RAM and I estimate the build required 10GB of memory to complete. The same machine only reported 2GB free with an arm Docker container, so will need to figure out how to get past that for an arm 32-bit build. |
@deftdawg make a 12GB swap can work ? |
If I recall correctly I attempted a build on an ARM64 VM and it passed
once I updated Node to 10.15.1. Older versions of Node failed. The
master branch currently targets 12.14.0 but I haven't used that to build
on ARM64 yet so I can't confirm if it works.
|
Yarn complains about using node >8 or >11. For my successful build, I used Alpine 3.9 inside a Docker container with qemu-aarch64-static registered to build Master on an x86-64. Then I scp'ed the full code-server directory and started it on a Raspbery Pi 4 running aarch64. Newer versions of Alpine didn't work inside of Docker on x86-64, node will fail to compile while QEMU spits up (alpinelinux/docker-alpine#48). Screenshot of it running: I'm not sure how we can get this built on Arm32v7 though, I think qemu-arm-static maybe has some 2GB memory limit or something on 32-bit... I searched for Arm 32 machines with lots of ram and the only one I could find is an older QNAP NAS w/ a Coretex-A15 and DDR3 ram slots for up to 16gb. |
Closing since we found a better way now :3c |
This allows building for ARM using Travis's new Multiarch support. This will supersede ALL PRs I had for ARM support.
Resolves #35 and requires coder/nbin#25.